#pragma once

#include <string>
#include <memory>
#include <winsock2.h>

class CClientSocket
{
public:
    CClientSocket();
    ~CClientSocket();

public:
    void setProxyWnd(HWND hProxyWnd);
    //bool init(CNetProxy* pNetProxy);
    //bool uninit();
    //int register_(const char* pszUser, const char* pszPassword);
    //void guestLogin();
    //BOOL isClosed();
    //BOOL connect(int timeout = 3);
    //void addData(int cmd, const std::string& buffer);
    //void addData(int cmd, const char* buffer, int length);
    //void close();
    //BOOL connectServer(int timeout = 3);
    //BOOL sendLoginMsg();
    //BOOL recvLoginMsg(int& ret);
    //BOOL login(int& ret);

private:
    void loadConfig();

private:
    class CInternal;
    CInternal* m_internal;
    std::unique_ptr<CInternal> m_internal_cpp11_ptr;
    std::unique_ptr<CInternal> m_internal_cpp14_ptr;
};
